package com.fau.cm.service;

import java.util.List;
import java.util.Map;

import org.apache.poi.ss.usermodel.Workbook;

import com.fau.cm.entity.MedicalCallRecord;
import com.fau.cm.entity.MedicalCallRelay;
import com.fau.cm.entity.MedicalPreferentialPlan;
import com.fau.cm.entity.MedicalTariff;
import com.fau.cm.util.Page;

/**
 * @desc 计费管理接口
 * @author liy
 * @datetime 2014年12月10日,下午1:44:58
 */
public interface IBillingManagerService {
	
	/**
	 * @desc 计算话费合计
	 * @param callRecord 查询条件
	 * @return String
	 * @author liy
	 * @datetime 2014年12月11日,上午11:22:30
	 */
	public String sumCallFee(MedicalCallRecord callRecord);
	
	/**
	 * @desc 查询中继表
	 * @return List<MedicalCallRelay>
	 * @author liy
	 * @datetime 2014年12月10日,下午11:59:02
	 */
	public List<MedicalCallRelay> findRelay();
	
	/**
	 * @desc 查询可用的优惠方案
	 * @return List<MedicalPreferentialPlan>
	 * @author liy
	 * @datetime 2014年12月10日,下午9:35:26
	 */
	public List<MedicalPreferentialPlan> findUsablePreferentialPlan();
	
	/**
	 * @desc 保存优惠方案
	 * @author liy
	 * @datetime 2014年12月10日,下午1:55:50
	 */
	public void insertPreferentialPlan(MedicalPreferentialPlan preferentialPlan);
	
	/**
	 * @desc 保存资费管理
	 * @param tariff 
	 * @author liy
	 * @datetime 2014年12月10日,下午9:55:41
	 */
	public void insertTariff(MedicalTariff tariff);
	
	/**
	 * @desc 更新优惠方案
	 * @param preferentialPlan 
	 * @author liy
	 * @datetime 2014年12月10日,下午3:41:20
	 */
	public void updatePreferentialPlan(MedicalPreferentialPlan preferentialPlan);
	
	/**
	 * @desc 删除优惠方案
	 * @param preferentialPlan 待删除对象
	 * @author liy
	 * @datetime 2014年12月10日,下午3:14:49
	 */
	public void deletePreferentialPlan(MedicalPreferentialPlan preferentialPlan);
	
	/**
	 * @desc 删除资费管理
	 * @param tariff 待删除对象
	 * @author liy
	 * @datetime 2014年12月10日,下午10:23:24
	 */
	public void deleteTariff(MedicalTariff tariff);
	
	/**
	 * @desc 分页查询优惠方案
	 * @param map 分页参数
	 * @param preferentialPlan 表单查询条件
	 * @param eid 企业ID
	 * @return Page
	 * @author liy
	 * @datetime 2014年12月10日,下午2:31:42
	 */
	public Page findPreferentialPlanByPage(Map<String, Object> map,MedicalPreferentialPlan preferentialPlan,String eid);
	
	/**
	 * @desc 分页查询资费管理
	 * @param map 分页参数
	 * @param tariff 表单查询条件
	 * @param eid 企业ID
	 * @return Page
	 * @author liy
	 * @datetime 2014年12月10日,下午5:21:43
	 */
	public Page findTariffByPage(Map<String, Object> map,MedicalTariff tariff,String eid);
	
	/**
	 * @desc 分页查询话单记录
	 * @param map 分页参数
	 * @param callRecord 表单查询条件
	 * @param eid 企业ID
	 * @return Page
	 * @author liy
	 * @datetime 2014年12月11日,上午10:14:53
	 */
	public Page findCallRecordByPage(Map<String, Object> map,MedicalCallRecord callRecord,String eid);
	
	/**
	 * @desc 话单记录-导出当前
	 * @param ids 话单Id
	 * @return Workbook
	 * @throws Exception 
	 * @author liy
	 * @datetime 2014年12月29日,下午9:44:46
	 */
	public Workbook exportCallRecordCurrent(String ids) throws Exception;
	
	/**
	 * @desc 话单记录-导出全部
	 * @return Workbook
	 * @throws Exception 
	 * @author liy
	 * @datetime 2014年12月29日,下午9:46:14
	 */
	public Workbook exportCallRecordAll(MedicalCallRecord callRecord) throws Exception;
}
